Après montée 3.8.13 activer nouveau compte plante undefined method getUserIdFromToken

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Après montée 3.8.13 activer nouveau compte plante undefined method getUserIdFromToken

    Bonjour,

    Le site d'un de nos clients est à accès réservé mais on peut demander à créer son compte.
    Sauf qu'après la montée de version à 3.9.0, on a constaté que ça plante quand le futur utilisateur qui s'est inscrit clique sur le lien d'activation de son email qu'il a reçu : index.php?task=registration.activate&token=
    J'ai le message : 0 - Call to undefined method UsersModelRegistration::getUserIdFromToken()
    (Notez que ça date probablement de la mise à jour précédente, on n'a pas souvent de nouveaux inscrits et la fonction incriminante indique since 3.8.13)

    Je suis allée voir dans le code de Joomla : components\com_users\controllers\registration.php où il y une portion de code supplémentaire par rapport à 3.8.12 qui appelle effectivement cette fonction.
    Sauf que quand je vais voir components/com_users/models/registration.php, je trouve bien la fonction public function getUserIdFromToken($token).

    Je suis loin d'être une spécialiste en Joomla et en PHP objet, du coup je ne sais pas trop comment trouver le problème qui fait que le controleur ne trouve pas la method de son model alors qu'elle existe et que tout le reste fonctionne.

    Si on met en commentaires le nouveau code ci-dessous (ce qu'on ne peut pas laisser vu que c'est le core de Joomla), ça passe et un mail est envoyé à l'admin pour valider à son tour (et là ça plante mais je soupçonne que ce soit à cause du code mis en commentaires. Message d'erreur : Annonce Corps du message vide Erreur Enregistrement impossible : Une erreur est survenue lors de l'envoi de l'e-mail de notification d'activation).

    Code PHP:
           // Get the User ID
            
    $userIdToActivate $model->getUserIdFromToken($token);

            if (!
    $userIdToActivate)
            {
                
    JError::raiseError(403JText::_('COM_USERS_ACTIVATION_TOKEN_NOT_FOUND'));

                return 
    false;
            }

            
    // Get the user we want to activate
            
    $userToActivate JFactory::getUser($userIdToActivate);

            
    // Admin activation is on and admin is activating the account
            
    if (($uParams->get('useractivation') == 2) && $userToActivate->getParam('activate'0))
            {
                
    // If a user admin is not logged in, redirect them to the login page with a error message
                
    if (!$user->authorise('core.create''com_users'))
                {
                    
    $activationUrl 'index.php?option=com_users&task=registration.activate&token=' $token;
                    
    $loginUrl      'index.php?option=com_users&view=login&return=' base64_encode($activationUrl);

                    
    // In case we still run into this in the second step the user does not have the right permissions
                    
    $message JText::_('COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION_PERMISSIONS');

                    
    // When we are not logged in we should login
                    
    if ($user->guest)
                    {
                        
    $message JText::_('COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION');
                    }

                    
    $this->setMessage($message);
                    
    $this->setRedirect(JRoute::_($loginUrlfalse));

                    return 
    false;
                }
            } 

    Du coup, si quelqu'un a déjà eu le problème d'une fonction présente mais introuvable ou a une idée de quoi faire élucider ce mystère, ça m'aiderait beaucoup.

    Merci,

  • #2
    Bienvenue !

    La base est-elle bien à jour ? (voir dans la gestion des extensions)
    Le site utilise-t-il l'enregistrement standard ou un autre gestionnaire ?
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Tout est à jour à part un composant com_cck_importer qui est à 1.2.0 au lieu de 1.11.0 car sa mise à jour plante.

      Etant parachutée sur le projet je ne suis pas très au fait de tous les modules implémentés, et c'est mon premier site joomla mais ça semble être l'enregistrement standard. On passe par com_users/controllers/registration.php.

      Commentaire


      • #4
        Comment ont été faite les mises a jour ? Par le composant ?
        Vérifiez tout de même la base de donnée et la découverte d'extension mal installées
        Extension -> Gerer -> Base de donnée .... et correction (plusieurs fois si nécessaire)
        Extension -> Gerer -> Découvrir ..... et installer s'il y a des extensions découvertes
        Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer
        Cette année, le JoomlaDay FR a lieu à Bruxelles, les 20 et 21 mai 2022, plus d'infos et inscriptions : www.joomladay.fr

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X